A typical computer system includes an operating system which is responsible for allocating the system resources, including the processor, memory, monitor, etc. The operating system manages all of the interactions with a user, including the output of data to the monitor and the input from the keyboard, mouse, or other input device. A user may interact with the operating system in one of three ways: a command-line interface, a two-dimensional (2D) graphical user interface (GUI), or a three-dimensional (3D) graphical user interface.
The command-line interface (or text-based interface) allows the user to interact with the computer by typing commands using a keyboard. For example, the Unix operating system is a command-line operating system that requires only a keyboard to manipulate and perform various commands, functions, etc. Specifically, a user can navigate through the directory structure by typing commands followed by options, expressions, directories, or filenames. For example, to change directories, the user may type the command cd (i.e., “change directory”) followed by the desired directory name to enter.
A 2D GUI allows the user to interact with the computer using a keyboard and/or a mouse. The Solaris™ operating system (Solaris is a trademark of Sun Microsystems, Inc., Santa Clara, Calif., USA) for example, uses an X Windows System™ (X Windows System is a trademark of The Open Group, San Francisco, Calif., USA) toolkit which provides 2D GUI facilities that allow users to navigate using a keyboard and a mouse. Specifically, a 2D GUI is a user interface based on graphics (icons, pictures, menus, etc.). Typically, in a 2D GUI environment, all of the graphics are either two-dimensional objects or pseudo three-dimensional objects, which may be implemented with the use of clever drawing techniques. For example, in this environment, a user may enter a directory by double clicking the mouse on an icon in the shape of a folder.
2D GUI Toolkits have been created to help minimize the time a programmer spends creating a GUI application. Motif™ (Motif is a trademark of Open Software Foundation, Inc., Cambridge, Mass., USA), Swing (Swing is a product of Sun Microsystems, Inc., Santa Clara, Calif., USA), and Qt® (Qt is a registered trademark of Trolltech, Inc., Santa Clara, Calif., USA) are all examples of widely used 2D GUI Toolkits. 2D GUI Toolkits provide a set of basic building elements (e.g., GUI components such as buttons, menus, text boxes, etc.) and facilitate the creation of a GUI using these elements.
With the improvement in graphics technology, computer systems today often include a 3D graphics card. Because 3D graphics cards are becoming a standard feature in personal computer systems, 3D graphical environments are being created to take advantage of the powerful hardware and bring 3D windowing technologies to the desktop.
3D graphical environments allow a 2D GUI application to run in a 3D environment by mapping the window containing the 2D application in three dimensions and adding a depth to the window. In some cases, mapping of the window takes place during run time. Accordingly, the manner in which the 2D application is displayed is dependent on the underlying 3D environment.